V2EX  ›  英汉词典

Non-type Template Parameter

释义 Definition

在 C++ 模板中,非类型模板参数指的是“模板参数不是一个类型(type),而是一个值(value)”。常见的值包括整数、枚举、指针/引用、成员指针,以及在较新标准中更广义的结构化常量等。它常用于在编译期把常量信息(如数组长度、策略开关)传入模板,从而生成不同的类型或不同实现。

发音 Pronunciation (IPA)

/ˌnɑːn taɪp ˈtɛmpleɪt pəˈræmɪtər/

例句 Examples

std::array<int, 3> uses a non-type template parameter to fix the size at compile time.
std::array<int, 3> 使用非类型模板参数在编译期固定数组长度。

By making N a non-type template parameter (e.g., template<int N>), the compiler can unroll loops and optimize code differently for each N.
N 设计为非类型模板参数(例如 template<int N>)后,编译器可以针对不同的 N 进行循环展开等优化,从而生成不同的高效代码。

词源与来历 Etymology

该术语来自 C++ 的“模板(template)”体系:早期模板参数主要是“类型参数(type parameter)”,而实践中经常需要把常量值也纳入模板实例化过程,于是出现了“non-type(非类型)template parameter(模板参数)”这一说法,强调它传入的是“值”而不是“类型”。随着 C++ 标准演进,非类型模板参数可接受的形式逐步扩展(例如更广义的编译期常量对象)。

相关词 Related Words

文献与作品 Literary / Notable Works

  • The C++ Programming Language(Bjarne Stroustrup)
  • C++ Templates: The Complete Guide(David Vandevoorde, Nicolai M. Josuttis, Douglas Gregor)
  • *Effective Modern C++*(Scott Meyers)
  • *ISO/IEC 14882 (C++ Standard)*(C++ 标准文本中对模板参数类别有正式定义与演进说明)
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   839 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 17ms · UTC 23:30 · PVG 07:30 · LAX 15:30 · JFK 18:30
♥ Do have faith in what you're doing.